// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package cn.com.smartdevices.bracelet.chart; import android.animation.Animator; import android.content.Context; import android.graphics.RectF; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.ViewParent; import android.view.animation.AccelerateDecelerateInterpolator; import cn.com.smartdevices.bracelet.Debug; import cn.com.smartdevices.bracelet.chart.base.BarChart; import cn.com.smartdevices.bracelet.chart.base.BaseChart; import cn.com.smartdevices.bracelet.chart.base.BaseChartView; import cn.com.smartdevices.bracelet.chart.base.ChartScroller; import cn.com.smartdevices.bracelet.chart.base.ColorRenderer; import cn.com.smartdevices.bracelet.chart.base.Renderer; import cn.com.smartdevices.bracelet.chart.data.ChartDataLoader; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; // Referenced classes of package cn.com.smartdevices.bracelet.chart: // h, DynamicDetailChart, f, g public class DynamicDetailChartView extends BaseChartView { private static final String a = "Chart.DynamicDetailChartView"; private Renderer b; private Renderer c; private Renderer d; private Renderer e; private Renderer f; private Renderer g; private Renderer h; private Renderer i; private Renderer j; private Renderer k; private ChartScroller l; private int m; private ArrayList n; private int o; private DynamicDetailChartLoadCallback p; private cn.com.smartdevices.bracelet.chart.base.ChartScroller.ScrollingListener q; public DynamicDetailChartView(Context context) { this(context, null); } public DynamicDetailChartView(Context context, AttributeSet attributeset) { this(context, attributeset, 0); } public DynamicDetailChartView(Context context, AttributeSet attributeset, int i1) { super(context, attributeset, i1); q = new h(this); b = new ColorRenderer(0x4dffffff); c = new ColorRenderer(0x80ffffff); d = new ColorRenderer(0x99ff9600); e = new ColorRenderer(0x1affffff); f = new ColorRenderer(0xccffffff); g = new ColorRenderer(0xccffffff); h = new ColorRenderer(-27136); i = new ColorRenderer(0x33ffffff); j = new ColorRenderer(0x4dffffff); k = new ColorRenderer(0xccffffff); mChart = new DynamicDetailChart(context); mInterpolator = new AccelerateDecelerateInterpolator(); l = new ChartScroller(getContext(), q); n = new ArrayList(); } static DynamicDetailChartLoadCallback a(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.p; } private List a(List list, int i1, int j1) { Collections.sort(list, new cn.com.smartdevices.bracelet.chart.base.BarChart.BarItemComparator()); ArrayList arraylist = new ArrayList(); Iterator iterator = list.iterator(); Object obj = null; do { if (!iterator.hasNext()) { break; } Object obj1 = (cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem)iterator.next(); Debug.i("Chart.DynamicDetailChartView", (new StringBuilder()).append("Sleep : ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).scope).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).value).toString()); if (((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index >= i1) { if (obj != null) { int l1 = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj)).index + ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj)).scope; if (l1 == ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index && ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj)).value == ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).value) { DynamicDetailChart.DynamicDetailBarItem dynamicdetailbaritem2 = new DynamicDetailChart.DynamicDetailBarItem(); dynamicdetailbaritem2.index = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj)).index; dynamicdetailbaritem2.scope = (((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index + ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).scope) - ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj)).index; dynamicdetailbaritem2.value = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).value; dynamicdetailbaritem2.setRenderer(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).getRenderer()); Debug.i("Chart.DynamicDetailChartView", (new StringBuilder()).append("Sleep Merge : ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem2)).index).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem2)).scope).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem2)).value).toString()); arraylist.remove(obj); arraylist.add(dynamicdetailbaritem2); obj1 = dynamicdetailbaritem2; } else { if (l1 != ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index && l1 > i1 && l1 < j1) { DynamicDetailChart.DynamicDetailBarItem dynamicdetailbaritem1 = new DynamicDetailChart.DynamicDetailBarItem(); dynamicdetailbaritem1.index = l1; dynamicdetailbaritem1.scope = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index - l1; dynamicdetailbaritem1.value = 1; dynamicdetailbaritem1.setRenderer(d); Debug.i("Chart.DynamicDetailChartView", (new StringBuilder()).append("Sleep Active : ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem1)).index).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem1)).scope).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem1)).value).toString()); arraylist.add(dynamicdetailbaritem1); } arraylist.add(obj1); } } else { int k1 = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index + ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).scope; if (((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index > i1 && k1 < j1) { DynamicDetailChart.DynamicDetailBarItem dynamicdetailbaritem = new DynamicDetailChart.DynamicDetailBarItem(); dynamicdetailbaritem.index = i1; dynamicdetailbaritem.scope = ((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (obj1)).index - i1; dynamicdetailbaritem.value = 1; dynamicdetailbaritem.setRenderer(d); Debug.i("Chart.DynamicDetailChartView", (new StringBuilder()).append("Sleep Active : ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem)).index).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem)).scope).append(" , ").append(((cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem) (dynamicdetailbaritem)).value).toString()); arraylist.add(dynamicdetailbaritem); } arraylist.add(obj1); } obj = obj1; } } while (true); return arraylist; } private void a(DynamicDetailChartData dynamicdetailchartdata, boolean flag) { if (o == 16) { bindSleepData(dynamicdetailchartdata.sleepData, flag); } if (o == 1) { bindStepData(dynamicdetailchartdata.stepData); } ((DynamicDetailChart)mChart).notifyChanged(); } static void a(DynamicDetailChartView dynamicdetailchartview, DynamicDetailChartData dynamicdetailchartdata, boolean flag) { dynamicdetailchartview.a(dynamicdetailchartdata, flag); } static int b(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.o; } static ArrayList c(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.n; } static int d(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.m; } static BaseChart e(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.mChart; } static BaseChart f(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.mChart; } static BaseChart g(DynamicDetailChartView dynamicdetailchartview) { return dynamicdetailchartview.mChart; } public void bindSleepData(List list, boolean flag) { ArrayList arraylist; Iterator iterator; arraylist = new ArrayList(); iterator = list.iterator(); _L7: DynamicDetailChartSleepData dynamicdetailchartsleepdata; DynamicDetailChart.DynamicDetailBarItem dynamicdetailbaritem; if (!iterator.hasNext()) { break MISSING_BLOCK_LABEL_170; } dynamicdetailchartsleepdata = (DynamicDetailChartSleepData)iterator.next(); dynamicdetailbaritem = new DynamicDetailChart.DynamicDetailBarItem(); dynamicdetailbaritem.index = dynamicdetailchartsleepdata.index; dynamicdetailbaritem.scope = dynamicdetailchartsleepdata.length; dynamicdetailbaritem.value = dynamicdetailchartsleepdata.mode; dynamicdetailchartsleepdata.mode; JVM INSTR tableswitch 1 4: default 112 // 1 146 // 2 134 // 3 122 // 4 158; goto _L1 _L2 _L3 _L4 _L5 _L5: break MISSING_BLOCK_LABEL_158; _L1: break; /* Loop/switch isn't completed */ _L4: break; /* Loop/switch isn't completed */ _L8: arraylist.add(dynamicdetailbaritem); if (true) goto _L7; else goto _L6 _L6: dynamicdetailbaritem.setRenderer(b); goto _L8 _L3: dynamicdetailbaritem.setRenderer(c); goto _L8 _L2: dynamicdetailbaritem.setRenderer(d); goto _L8 dynamicdetailbaritem.setRenderer(e); goto _L8 ArrayList arraylist1 = new ArrayList(); arraylist1.addAll(((DynamicDetailChart)mChart).getSleepChart().getItems()); arraylist1.addAll(arraylist); if (!flag) { ((DynamicDetailChart)mChart).fillSleepData(arraylist1); return; } else { List list1 = a(arraylist1, ((DynamicDetailChart)mChart).getStartTimeIndex(), ((DynamicDetailChart)mChart).getEndTimeIndex()); ((DynamicDetailChart)mChart).fillSleepData(list1); return; } } public void bindStepData(List list) { ArrayList arraylist = new ArrayList(); DynamicDetailChart.DynamicDetailBarItem dynamicdetailbaritem; for (Iterator iterator = list.iterator(); iterator.hasNext(); arraylist.add(dynamicdetailbaritem)) { DynamicDetailChartStepData dynamicdetailchartstepdata = (DynamicDetailChartStepData)iterator.next(); dynamicdetailbaritem = new DynamicDetailChart.DynamicDetailBarItem(); dynamicdetailbaritem.value = dynamicdetailchartstepdata.step; dynamicdetailbaritem.index = dynamicdetailchartstepdata.index; dynamicdetailbaritem.scope = 1; dynamicdetailbaritem.setRenderer(j); } ((DynamicDetailChart)mChart).addStepData(arraylist); } public void clearData() { n.clear(); mLoader.clearData(); ((DynamicDetailChart)mChart).clearStepData(); ((DynamicDetailChart)mChart).clearSleepData(); ((DynamicDetailChart)mChart).notifyChanged(); } public cn.com.smartdevices.bracelet.chart.data.ChartDataLoader.ItemData loadDynamicData(int i1) { return loadDynamicData(i1, null); } public transient cn.com.smartdevices.bracelet.chart.data.ChartDataLoader.ItemData loadDynamicData(int i1, int ai[]) { m = i1; cn.com.smartdevices.bracelet.chart.data.ChartDataLoader.ItemData itemdata = mLoader.getItemData(i1); if (itemdata == null && mLoader.hasItemData(i1)) { n.add(Integer.valueOf(i1)); } if (ai != null) { int k1 = ai.length; for (int l1 = 0; l1 < k1; l1++) { int i2 = ai[l1]; if (mLoader.getItemData(i2) == null && mLoader.hasItemData(i2)) { n.add(Integer.valueOf(i2)); } } } int j1; for (Iterator iterator = n.iterator(); iterator.hasNext(); mLoader.loadItemData(j1)) { j1 = ((Integer)iterator.next()).intValue(); mLoader.putItemData(j1, new DynamicDetailChartData()); } return itemdata; } public void notifyChanged() { ((DynamicDetailChart)mChart).notifyChanged(); } public boolean onTouch(float f1, float f2) { Debug.i("Chart.DynamicDetailChartView", (new StringBuilder()).append("On Touch : ").append(f1).append(",").append(f2).toString()); if (o != 16) goto _L2; else goto _L1 _L1: Iterator iterator1; boolean flag1; iterator1 = ((DynamicDetailChart)mChart).getSleepChart().getItems().iterator(); flag1 = false; _L17: cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem baritem1; if (!iterator1.hasNext()) { break MISSING_BLOCK_LABEL_339; } baritem1 = (cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem)iterator1.next(); baritem1.value; JVM INSTR tableswitch 1 4: default 124 // 1 267 // 2 255 // 3 243 // 4 279; goto _L3 _L4 _L5 _L6 _L7 _L3: RectF rectf1; rectf1 = baritem1.getRect(); if (f1 < rectf1.left || f1 > rectf1.right) { continue; /* Loop/switch isn't completed */ } baritem1.value; JVM INSTR tableswitch 1 4: default 188 // 1 315 // 2 303 // 3 291 // 4 327; goto _L8 _L9 _L10 _L11 _L12 _L8: break; /* Loop/switch isn't completed */ _L12: break MISSING_BLOCK_LABEL_327; _L13: int k1 = baritem1.index + (int)(((f1 - rectf1.left) / rectf1.width()) * (float)baritem1.scope); p.onTouchItem(baritem1.index, baritem1, k1, f1, f2); flag1 = true; continue; /* Loop/switch isn't completed */ _L6: baritem1.setRenderer(b); goto _L3 _L5: baritem1.setRenderer(c); goto _L3 _L4: baritem1.setRenderer(d); goto _L3 _L7: baritem1.setRenderer(e); goto _L3 _L11: baritem1.setRenderer(f); goto _L13 _L10: baritem1.setRenderer(g); goto _L13 _L9: baritem1.setRenderer(h); goto _L13 baritem1.setRenderer(i); goto _L13 boolean flag; refresh(); flag = flag1; _L15: return flag; _L2: int i1; i1 = o; flag = false; if (i1 != 1) goto _L15; else goto _L14 _L14: Iterator iterator = ((DynamicDetailChart)mChart).getStepChart().getItems().iterator(); do { if (!iterator.hasNext()) { break; } cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem baritem = (cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem)iterator.next(); baritem.setRenderer(j); RectF rectf = baritem.getRect(); if (f1 >= rectf.left && f1 <= rectf.right) { baritem.setRenderer(k); int j1 = 60 * baritem.index; p.onTouchItem(baritem.index, baritem, j1, f1, f2); flag = true; } } while (true); refresh(); return flag; if (true) goto _L17; else goto _L16 _L16: } public boolean onTouchEvent(MotionEvent motionevent) { boolean flag = true; if (mScrollable) goto _L2; else goto _L1 _L1: flag = false; _L4: return flag; _L2: if (getParent() != null) { getParent().requestDisallowInterceptTouchEvent(flag); } float f1 = motionevent.getX(); float f2 = motionevent.getY(); switch (motionevent.getAction()) { default: return flag; case 0: // '\0' case 2: // '\002' if (!onTouch(f1, f2)) { p.onTouchNothing(f1, f2); return flag; } break; case 1: // '\001' case 3: // '\003' onTouch(-1F, -1F); p.onTouchNothing(f1, f2); return flag; } if (true) goto _L4; else goto _L3 _L3: } public void refresh() { if (animRefresh().isStarted()) { return; } else { super.refresh(); return; } } public void refresh(boolean flag) { super.refresh(flag); } public void setDataLoader(ChartDataLoader chartdataloader) { mLoader = chartdataloader; p = (DynamicDetailChartLoadCallback)chartdataloader.getLoadCallback(); mLoader.setLoadCallback(new f(this)); ((DynamicDetailChart)mChart).setLoadCallback(new g(this)); } public void setMode(int i1) { o = i1; ((DynamicDetailChart)mChart).setMode(o); } public void setOffset(int i1) { ((DynamicDetailChart)mChart).setOffset(i1); } public void setStartEndTimeIndex(int i1, int j1) { ((DynamicDetailChart)mChart).setStartEndTimeIndex(i1, j1); } public void setStepItemSelection(int i1) { Iterator iterator = ((DynamicDetailChart)mChart).getStepChart().getItems().iterator(); do { if (!iterator.hasNext()) { break; } cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem baritem = (cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem)iterator.next(); if (baritem.index != i1) { continue; } baritem.setRenderer(k); break; } while (true); } private class DynamicDetailChartData extends cn.com.smartdevices.bracelet.chart.data.ChartDataLoader.ItemData { public String date; public String prevDate; public List sleepData; public List stepData; public DynamicDetailChartData() { date = ""; prevDate = ""; sleepData = new ArrayList(); stepData = new ArrayList(); } } private class DynamicDetailChartSleepData { public static final int MODE_SLEEP_ACTIVE = 1; public static final int MODE_SLEEP_DEEP = 3; public static final int MODE_SLEEP_SHALLOW = 2; public static final int MODE_SLEEP_USER = 4; public int index; public int length; public int mode; public DynamicDetailChartSleepData() { } } private class DynamicDetailChartStepData { public int index; public int step; public DynamicDetailChartStepData() { } } private class DynamicDetailChartLoadCallback implements cn.com.smartdevices.bracelet.chart.data.ChartDataLoader.LoadCallback { public abstract void onTouchItem(int i1, cn.com.smartdevices.bracelet.chart.base.BarChart.BarItem baritem, int j1, float f1, float f2); public abstract void onTouchNothing(float f1, float f2); } }